import numpy as np
import pandas as pd
df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
 "date":pd.date_range('20130102', periods=6),
  "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
 "age":[23,44,54,32,34,32],
 "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
  "price":[1200,np.nan,2133,5433,np.nan,4432]},
  columns =['id','date','city','category','age','price'])
#1、维度查看：
# print(df.shape())

# 2、数据表基本信息（维度、列名称、数据格式、所占空间等）：
# print(df.info())

# 3、每一列数据的格式：
# print(df.dtypes)

# 4、某一列格式：
# df['B'].dtype

# 5、空值：
# df.isnull()

# 6、查看某一列空值：
# df['B'].isnull()

# 7、查看某一列的唯一值：
# df['B'].unique()

# 8、查看数据表的值：
# df.values

# 9、查看列名称：
# df.columns

# 10、查看前5行数据、后5行数据：
# df.head()  # 默认前5行数据
# df.tail()  # 默认后5行数据

# 1、用数字0填充空值：
# df.fillna(value=0)

# 2、使用列prince的均值对NA进行填充：
# df['prince'].fillna(df['prince'].mean())

# 3、清除city字段的字符空格：
# df['city'] = df['city'].map(str.strip)

# 4、大小写转换：
# df['city'] = df['city'].str.lower()

# 5、更改数据格式：
# df['price'].astype('int')

# 6、更改列名称：
# df.rename(columns={'category': 'category-size'})

# 7、删除后出现的重复值：
# df['city'].drop_duplicates()

# 8 、删除先出现的重复值：
# df['city'].drop_duplicates(keep='last')

# 9、数据替换：
# df['city'].replace('sh', 'shanghai')

#10.datatime使用
# import pandas as pd
#
# # 从字符串创建 datetime 对象
# date_str = "2025-03-08"
# date_obj = pd.to_datetime(date_str)
# print(date_obj)

# import pandas as pd
#
# # 创建一个 datetime 对象
# date = pd.to_datetime('2025-03-08 14:30:00')
#
# # 提取各部分数据
# print(date.year)   # 输出：2025
# print(date.month)  # 输出：3
# print(date.day)    # 输出：8
# print(date.hour)   # 输出：14
# print(date.minute) # 输出：30
# print(date.second) # 输出：0

# from datetime import timedelta
#
# # 创建一个 datetime 对象
# date = pd.to_datetime('2025-03-08')
#
# # 加上 10 天
# new_date = date + timedelta(days=10)
# print(new_date)

# 使用 datetime 类型创建 DataFrame 索引
# df = pd.DataFrame({
#     'value': [10, 20, 30, 40, 50]
# }, index=pd.to_datetime(['2025-03-01', '2025-03-02', '2025-03-03', '2025-03-04', '2025-03-05']))
#
# print(df)
